package com.hifar.test.example;

import com.hifar.plat.AopOption.Excel;
import lombok.Data;

import java.util.Date;

/**
 * 日期格式示例VO
 * 演示如何使用增强的Excel注解支持多种日期格式
 * 
 * @author system
 * @date 2025-01-XX
 */
@Data
public class DateFormatExampleVO {

    /**
     * 姓名
     */
    @Excel(name = "姓名", sort = 1)
    private String name;

    /**
     * 出生日期 - 支持多种格式
     * 支持：2024-01-15, 2024/01/15, 2024.01.15, 2024年01月15日
     */
    @Excel(name = "出生日期", sort = 2, format = "yyyy-MM-dd,yyyy/MM/dd,yyyy.MM.dd,yyyy年MM月dd日")
    private Date birthDate;

    /**
     * 入职日期 - 使用智能解析
     * 自动识别多种日期格式
     */
    @Excel(name = "入职日期", sort = 3, smartDateParse = true)
    private Date joinDate;

    /**
     * 创建时间 - 支持带时间的格式
     * 支持：2024-01-15 14:30:00, 2024/01/15 14:30:00
     */
    @Excel(name = "创建时间", sort = 4, format = "yyyy-MM-dd HH:mm:ss,yyyy/MM/dd HH:mm:ss")
    private Date createTime;

    /**
     * 更新时间 - 使用默认格式
     * 使用注解中定义的默认格式数组
     */
    @Excel(name = "更新时间", sort = 5, smartDateParse = true)
    private Date updateTime;

    /**
     * 短日期格式 - 支持MMdd格式
     * 如：0115 表示当年1月15日
     */
    @Excel(name = "短日期", sort = 6, format = "MMdd,yyyyMMdd")
    private Date shortDate;

    /**
     * 必填日期字段
     */
    @Excel(name = "必填日期", sort = 7, format = "yyyy-MM-dd", required = true)
    private Date requiredDate;

    /**
     * 带默认值的日期字段
     */
    @Excel(name = "默认日期", sort = 8, format = "yyyy-MM-dd", defaultValue = "2024-01-01")
    private Date defaultDate;
}
